In communications over HTTP, such as DASH (acronym for Dynamic Adaptive Streaming over HTTP) media content streaming, a high amount of data may be requested by a client device to a server device. To do so, the client device usually sends HTTP requests that each includes a request line made of a method (for instance “GET”) and a uniform resource identifiers, URI, identifying and locating, possibly together with one or more additional headers in the HTTP request (for instance a Range header that provides a byte range within the resource identified by the URI), the requested data on the server device.
A server Push feature has been developed to make it possible for the server device to voluntary push data not yet requested by the client device. This is a useful feature for decreasing web resource load time.
The server Push feature has been introduced in HTTP/2 (which also makes it possible to exchange several requests/responses, i.e. to have several streams, within single existing connection) for allowing server devices to send unsolicited web resource representations to client devices. Web resources such as web pages generally contain links to other resources, which themselves may contain links to other resources. To fully display a web page, all the linked and sub-linked resources generally need to be retrieved by the client device. This incremental discovery may lead to a slow display of a web page, especially on high latency networks such as mobile networks.
When receiving a request for a given web page, the server device is able to determine which other resources are needed for the full processing of the requested resource. By sending the requested resource and the linked resources at the same time, the server device allows reducing the load time of the web page. Thus, using the push feature, the server device may send additional resource representations at the time it is requested a given resource.
The push of data has also been suggested in the context of DASH, for instance in the Applicant's application published under WO 2015/004276.
This publication seeks to enhance data streaming, especially in the context of DASH-based communications, to optimize user experience. This is because, in conventional mechanisms, the client and server devices may not know if the promised data will be transmitted and received at the desired time: the client device may not know when and in which order the video segments will be sent. Also, the promised data pushed or announced by the server device may mismatch the client device's needs (which may evolve over time), thus leading to resource wasting in particular at the server end. Publication WO 2015/004276 thus suggests sharing a push policy between the server device and the client device.
This sharing helps the client device to know in advance which data are about to be pushed, and then to prepare cancellation of such pushes to avoid wasting network bandwidth.
However, the mechanisms proposed in this publication require that the server device has sophisticated knowledge of DASH, in particular to be able to apply the push policy on the XML-based DASH “media presentation description” files (MPD) to determine which data or resource to push according to the push policy.
It is reminded that a MPD file describes the structure of media contents into media segments. The MPD file is exchanged between the server device and the client device, providing the later with information allowing it to control the delivery of media contents, i.e. to individually request each media segment.